// 工程测量实习24.12.3
#include "shuju.h"

int main()
{
    double m, P, beta;
    double T_h, L_h, E_h, q;
    get_values(&m, &P, &beta, &T_h, &L_h, &E_h, &q);

    // ZH, HY, QZ, YH, HZ, JD得到值，返回L_T圆曲线弧长
    double L_T = get_mile(&ZH, &HY, &QZ, &YH, &HZ, &JD, &T_h, &L_h, &beta);
    // 得到L总弧长
    double L = L_T + 2 * L_s;

    test_value(JD.mile, QZ.mile + q / 2);

    // 三段曲线建立结构体
    int num1 = int(L_s / 10);
    int num2 = int(L_T / 10);
    int num3 = int(L_s / 10);
    zuobiao datas_1[num1];
    zuobiao datas_2[num2];
    zuobiao datas_3[num3];

    // 计算坐标
    get_XY1(datas_1, ZH.mile, num1);
    get_XY2(datas_2, HY.mile, num2, ZH.mile, m, P);
    get_XY3(datas_3, ZH.mile, num3);

    // 绝对坐标转化  角度处理有问题
    change_get_XY(T_h);
    change_get_XY1(&HY, 1);
    change_get_XY1(&QZ, 1);
    change_get_XY1(&YH, 1);

    change_get_XY1(datas_1, num1);
    change_get_XY2(datas_2, num2);
    change_get_XY2(datas_3, num3);

    // 展示打印输出
    show(T_h, L_h, E_h, q);
    show_XY1(&ZH, 1);
    show_XY1(&HY, 1);
    show_XY1(&QZ, 1);
    show_XY1(&YH, 1);
    show_XY1(&HZ, 1);
    show_jiaomi();
    show_XY1(datas_1, num1);
    show_XY1(datas_2, num2);
    show_XY1(datas_3, num3);
    cout << "文件datas.txt生成成功!" << endl;
}